package bavaria.hightec.banking;


import java.io.IOException;
import java.io.OutputStream;

import bavaria.hightec.conditions.Conditions.runtime;
import bavaria.hightec.exceptions.OverCheckException;

public interface BankCustomerView {
	
	public String createDepositAccount(String name,runtime runtime);
	
	public String createGiroAccount(String name);
	
	public Money balance(int accountNumber);
	
	public void withdraw(int accountNumber,Money amount,String matter) throws OverCheckException;
	
	public void fund(int accountNumber,Money amount,String matter) throws OverCheckException;
	
	public void transaction(int accountnumber,int accountofdestination,Money amount,String matter) throws OverCheckException;

	public String getGiroConditions();
	
	public String getDepositConditions();
	
	public boolean accountNumberExists(int accountnumber);
	
	public void statement(int accountNumber, OutputStream out, String mimeType) throws IOException;

	void sort(String type, int accountNumber);
}
